#ifndef GRAPHIC_ENGINE_CAMERA_H
#define GRAPHIC_ENGINE_CAMERA_H

#include "graphics_engine.h"

#include <irrlicht.h>

#define CAMERATURNSPEED irr::f32(0.2)
#define CAMERAMOVESPEED irr::f32(1)

class CameraHandle
{
public:
	GRAPHICS_ENGINE_API explicit CameraHandle(irr::scene::ICameraSceneNode& camera, irr::f32 y,  irr::f32 p);

public:
	GRAPHICS_ENGINE_API void turn   (irr::f32 yaw,  irr::f32 pitch);
	GRAPHICS_ENGINE_API void moveLF (irr::f32 left, irr::f32 forward);
	GRAPHICS_ENGINE_API void moveLU (irr::f32 left, irr::f32 yp);

private:
	GRAPHICS_ENGINE_API void relativeVector(irr::core::vector3df &v);

private:
	irr::scene::ICameraSceneNode& camera_reference;
	irr::f32                      yaw;
	irr::f32                      pitch;
};

#endif